public class test5 {
// 力扣 17.19. 消失的两个数字

    public static void main(String[] args) {
        int[] arr = {1};
        int[] missingTwo = missingTwo(arr);
        for(int n:missingTwo){
            System.out.println(n);
        }

    }

    public static int[] missingTwo(int[] nums) {
        int n = nums.length;
        int xor = 0;
        for (int m : nums) {
            xor ^= m;
        }
        for (int i = 1; i <= n + 2; i++) {
            xor ^= i;
        }
        int a = 0, b = 0;
        int lsb = (xor == Integer.MIN_VALUE ? xor : xor & (-xor));
        for (int i = 1; i <= n + 2; i++) {
            if ((i & lsb) != 0) {
                a ^= i;
            } else {
                b ^= i;
            }
        }
        for (int m : nums) {
            if ((m & lsb) != 0) {
                a ^= m;
            } else {
                b ^= m;
            }
        }
        return new int[] { a, b };
    }
}
